﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

namespace App_Persistencia
{
    public class Reunion_Data
    {
        private int id;
        public int Id
        {
            get { return id; }
            set { id = value; }
        }

        private DateTime fecha;
        public DateTime Fecha
        {
            get { return fecha; }
            set { fecha = value; }
        }
        
        private string observaciones;
        public string Observaciones
        {
            get { return observaciones; }
            set { observaciones = value; }
        }

        private string respuestaEmpresa;
        public string RespuestaEmpresa
        {
            get { return respuestaEmpresa; }
            set { respuestaEmpresa = value; }
        }

        private string observacionEjecucion;
        public string ObservacionEjecucion
        {
            get { return observacionEjecucion; }
            set { observacionEjecucion = value; }
        }
                
        private Reunion_Tipo_Data reunionTipo;
        public Reunion_Tipo_Data ReunionTipo
        {
            get { return reunionTipo; }
            set { reunionTipo = value; }
        }

        private Reunion_Estado_Data reunionEstado;
        public Reunion_Estado_Data ReunionEstado
        {
            get { return reunionEstado; }
            set { reunionEstado = value; }
        }

        
        Cliente_Data cliente;
        public Cliente_Data Cliente
        {
            get { return cliente; }
            set { cliente = value; }
        }
        
        Presupuesto_Data presupuesto;
        public Presupuesto_Data Presupuesto
        {
            get { return presupuesto; }
            set { presupuesto = value; }
        }

        private Evento_Data evento;
        public Evento_Data Evento
        {
            get { return evento; }
            set { evento = value; }
        }

        private List<Alimento_Data> platosADegustar = new List<Alimento_Data>();
        public List<Alimento_Data> PlatosADegustar
        {
            get { return platosADegustar; }
            set { platosADegustar = value; }
        }

        private string hora;
        public string Hora
        {
            get { return hora; }
            set { hora = value; }
        }

        public static DataTable listarHorariosDisponibles(int tipoEmpleadoId, DateTime fecha)
        {
            //falta filtrar por fecha y tipo de reunion
            //ver : http://rdgz.wordpress.com/2008/01/13/consultas-sql-basadas-en-fecha-yo-hora/
            //string commandSQL ="SELECT Horas "
            //                   +" FROM Hora "
            //                   +" WHERE(Horas NOT IN (SELECT hora_Id "
            //                   +"                     FROM Horas_x_Empleado AS HPE))";
            string commandSQL = "SELECT Horas " +
                                "FROM Hora " +
                                "WHERE(Horas NOT IN " +
                                "(SELECT Hora_1.Horas " +
                                "  FROM Hora AS Hora_1 INNER JOIN " +
                                "  Horas_x_Empleado ON Hora_1.Horas = Horas_x_Empleado.hora_Id INNER JOIN " +
                                "  Empleado ON Horas_x_Empleado.empleado_Id = Empleado.emp_Id INNER JOIN " +
                                "  Reunion ON Horas_x_Empleado.reunion_Id = Reunion.reu_Id INNER JOIN " +
                                "  Reunion_Tipo ON Reunion.tipoReunion_Id = Reunion_Tipo.tReu_Id " +
                                "  WHERE (Empleado.tipoEmpleado_Id = "+tipoEmpleadoId.ToString()+") AND (Horas_x_Empleado.reunion_Fecha BETWEEN '"+fecha.ToShortDateString()+"' AND '"+fecha.AddDays(1).ToShortDateString()+"')" +
                                "  GROUP BY Hora_1.Horas " +
                                "  HAVING (COUNT(Horas_x_Empleado.empleado_Id) = " +
                                "          (SELECT COUNT(*) AS Expr1 " +
                                "          FROM Empleado AS Empleado_1 " +
                                "          WHERE(tipoEmpleado_Id = " + tipoEmpleadoId.ToString() + "))))) ";

                

            string conexion = ConfigurationManager.ConnectionStrings["CadenaConexion"].ConnectionString;
            SqlDataAdapter dataAdapter = new SqlDataAdapter(commandSQL, conexion);
            DataSet dataSet = new DataSet();
            dataAdapter.Fill(dataSet, "Hora");
            DataTable dataTable = new DataTable();
            dataTable = dataSet.Tables["Hora"];
            return dataTable;
        }
        
        public DataTable popularReunionesPendientes()
        {

            string commandSQL = "SELECT     Reunion.reu_Id as Nro,Reunion.reu_fecha as Fecha, Cliente.cli_Apellido as Apellido,Horas_x_Empleado.hora_Id as Hora, Cliente.cli_Email as Mail, Cliente.cli_Nombre as Nombre, Reunion_Tipo.tReu_Nombre as Motivo ,Reunion.presupuesto_Id AS PresupuestoId, Reunion.evento_Id as EventoId, Reunion_estado.eReu_Nombre as estado, Reunion.reu_Observaciones as Observaciones, Reunion.presupuesto_Id as PresupuestoId "
                               + "FROM Reunion, Reunion_Estado, Reunion_Tipo, Cliente, Horas_x_Empleado "
                               + "WHERE Reunion.estado_Id = Reunion_Estado.eReu_Id and Reunion_Estado.eReu_Id = 1 AND Horas_x_Empleado.reunion_Id = Reunion.reu_Id AND Reunion_Tipo.tReu_Id = Reunion.tipoReunion_Id AND Reunion.cliente_Id =Cliente.cli_Id ";


            // Creo el Objeto DataAdapter y le paso la cadena al constructor y la sentencia SQL
            string conexion = ConfigurationManager.ConnectionStrings["CadenaConexion"].ConnectionString;
            SqlDataAdapter dataAdapter = new SqlDataAdapter(commandSQL, new SqlConnection(conexion));

            //// Obtengo la tabla del DataSet
            //DataTable dataTable = new DataTable();


            //// Relleno el DataTable
            //dataAdapter.Fill(dataTable);

            // Creo el Objeto DataSet
            DataSet dataSet = new DataSet();

            // Relleno el Objeto DataSet
            dataAdapter.Fill(dataSet, "Reunion");

            // Obtengo la tabla del DataSet
            DataTable dataTable = dataSet.Tables["Reunion"];

            return dataTable;
        }

        public DataTable popularReunionPendiente(int idReunion)
        {

            string commandSQL = "SELECT     Reunion.reu_Id as Nro,Reunion.reu_fecha as Fecha, Cliente.cli_Apellido as Apellido,Horas_x_Empleado.hora_Id as Hora, Cliente.cli_Email as Mail, Cliente.cli_Nombre as Nombre, Reunion_Tipo.tReu_Nombre as Motivo ,Reunion.presupuesto_Id AS PresupuestoId, Reunion.evento_Id as EventoId, Reunion_estado.eReu_Nombre as estado, Reunion.reu_Observaciones as Observaciones, Reunion.presupuesto_Id as PresupuestoId "
                               + "FROM Reunion, Reunion_Estado, Reunion_Tipo, Cliente, Horas_x_Empleado "
                               + "WHERE Reunion.estado_Id = Reunion_Estado.eReu_Id and Reunion_Estado.eReu_Id = 1 AND Horas_x_Empleado.reunion_Id = Reunion.reu_Id AND Reunion_Tipo.tReu_Id = Reunion.tipoReunion_Id AND Reunion.cliente_Id =Cliente.cli_Id and Reunion.reu_Id = "+ idReunion;


            // Creo el Objeto DataAdapter y le paso la cadena al constructor y la sentencia SQL
            string conexion = ConfigurationManager.ConnectionStrings["CadenaConexion"].ConnectionString;
            SqlDataAdapter dataAdapter = new SqlDataAdapter(commandSQL, new SqlConnection(conexion));

            //// Obtengo la tabla del DataSet
            //DataTable dataTable = new DataTable();


            //// Relleno el DataTable
            //dataAdapter.Fill(dataTable);

            // Creo el Objeto DataSet
            DataSet dataSet = new DataSet();

            // Relleno el Objeto DataSet
            dataAdapter.Fill(dataSet, "Reunion");

            // Obtengo la tabla del DataSet
            DataTable dataTable = dataSet.Tables["Reunion"];

            return dataTable;
        }

        public void confrimarCancelarReunion(string accion)
        {
            // Crear el Objeto de conexion, inicializa con la cadena de conexion
            string conexion = ConfigurationManager.ConnectionStrings["CadenaConexion"].ConnectionString;
            System.Data.SqlClient.SqlConnection connection = new SqlConnection(conexion);

            // Abro la conexion
            connection.Open();

            //Invoco al Objeto SqlTransaction para manejar la transaccion  
            //ejecuto la transaccion

            try
            {
                // Creo el Objeto Command, le asigno la conexion y el Procediminto a utilizar
                System.Data.SqlClient.SqlCommand command = new System.Data.SqlClient.SqlCommand();
                //Asigno a la propiedad Transaction del Objeto SqlCommand el valor del Objeto SqlTransaction

                //Asingo la conexion al objeto conection
                command.Connection = connection;
                if (accion == "confirmar")
                {
                    command.CommandText = "UPDATE Reunion SET estado_Id = " + 2 +
                                          " WHERE Reunion.reu_Id = " + Id;
                }
                else
                {
                    command.CommandText = "UPDATE Reunion SET estado_Id = " + 4 +
                                          " WHERE Reunion.reu_Id = " + Id;

                }
                command.CommandType = CommandType.Text;

                // Ejecuto el procedimiento
                command.ExecuteNonQuery();
            }
            catch (SystemException e)
            {

                //provoco una Exepcion para la capa superior
                System.Diagnostics.Trace.Write(e.Message);
                throw new SystemException(e.Message);
            }
            finally
            {
                //Si termino la carga correctamente cierro la conexion
                connection.Close();
            }
        }

        public void actualizarReunion()
        {
            // Crear el Objeto de conexion, inicializa con la cadena de conexion
            string conexion = ConfigurationManager.ConnectionStrings["CadenaConexion"].ConnectionString;
            System.Data.SqlClient.SqlConnection connection = new SqlConnection(conexion);

            // Abro la conexion
            connection.Open();

            //Invoco al Objeto SqlTransaction para manejar la transaccion  
            //ejecuto la transaccion
            SqlTransaction transaccion = connection.BeginTransaction();

            try
            {
                // Creo el Objeto Command, le asigno la conexion y el Procediminto a utilizar
                System.Data.SqlClient.SqlCommand command = new System.Data.SqlClient.SqlCommand();
                //Asigno a la propiedad Transaction del Objeto SqlCommand el valor del Objeto SqlTransaction
                command.Transaction = transaccion;
                //Asingo la conexion al objeto conection
                command.Connection = connection;
                command.CommandText = "spUpdateReunion";
                command.CommandType = CommandType.StoredProcedure;

                // Declaro el Objeto de parametro
                System.Data.SqlClient.SqlParameter param;

                param = command.Parameters.AddWithValue("@ReunionId", id);
                param.DbType = DbType.Int32;
                param.Direction = ParameterDirection.Input;

                param = command.Parameters.AddWithValue("@Observaciones", Observaciones);
                param.DbType = DbType.String;
                param.Direction = ParameterDirection.Input;

                param = command.Parameters.AddWithValue("@RespuestaEmpresa", RespuestaEmpresa);
                param.DbType = DbType.String;
                param.Direction = ParameterDirection.Input;

                param = command.Parameters.AddWithValue("@ObservacionEjecucion", ObservacionEjecucion);
                param.DbType = DbType.String;
                param.Direction = ParameterDirection.Input;

                param = command.Parameters.AddWithValue("@Estado",  ReunionEstado.Numero);
                param.DbType = DbType.Int32;
                param.Direction = ParameterDirection.Input;

                // Ejecuto el procedimiento
                command.ExecuteNonQuery();

                //Si no se genero ningun error en la carga ejecuto el commit
                transaccion.Commit();
            }
            catch (SystemException e)
            {
                //si se produjo algun error lo capturo y ejecuto el Rollback de la transaccion
                transaccion.Rollback();
                //provoco una Exepcion para la capa superior
                System.Diagnostics.Trace.Write(e.Message);

                throw new SystemException(e.Message);
            }
            finally
            {
                //Si termino la carga correctamente cierro la conexion
                connection.Close();
            }
        }

        public void cargarPlatosADegustar(SqlTransaction pTransaccion, SqlConnection pConnection)
        {
            foreach (Alimento_Data item in PlatosADegustar)
            {
                // Creo el Objeto Command, le asigno la conexion y el Procediminto a utilizar
                System.Data.SqlClient.SqlCommand commandDetalle = new System.Data.SqlClient.SqlCommand();
                //Asigno a la propiedad Transaction del Objeto SqlCommand el valor del Objeto SqlTransaction
                commandDetalle.Transaction = pTransaccion;
                //Asingo la conexion al objeto conection
                commandDetalle.Connection = pConnection;
                commandDetalle.CommandText = "spCargarPlatosADegustar";
                commandDetalle.CommandType = CommandType.StoredProcedure;

                // Declaro el Objeto de parametro
                System.Data.SqlClient.SqlParameter paramDetalle;

                // Establesco el parametro @SocDenom, uso como entrada los atributos de la clase
                paramDetalle = commandDetalle.Parameters.AddWithValue("@ReunionId", Id);
                paramDetalle.DbType = DbType.Int32;
                paramDetalle.Direction = ParameterDirection.Input;

                // Establesco el parametro @EjeId, uso como entrada los atributos de la clase
                paramDetalle = commandDetalle.Parameters.AddWithValue("@AlimentoId", item.Id);
                paramDetalle.DbType = DbType.Int32;
                paramDetalle.Direction = ParameterDirection.Input;

                // Ejecuto el procedimiento
                commandDetalle.ExecuteNonQuery();
            }
        }

        public void guardarReunion()
        {
            // Crear el Objeto de conexion, inicializa con la cadena de conexion
            string conexion = ConfigurationManager.ConnectionStrings["CadenaConexion"].ConnectionString;
            System.Data.SqlClient.SqlConnection connection = new SqlConnection(conexion);

            // Abro la conexion
            connection.Open();

            //Invoco al Objeto SqlTransaction para manejar la transaccion  
            //ejecuto la transaccion
            SqlTransaction transaccion = connection.BeginTransaction();

            try
            {
                // Creo el Objeto Command, le asigno la conexion y el Procediminto a utilizar
                System.Data.SqlClient.SqlCommand command = new System.Data.SqlClient.SqlCommand();
                //Asigno a la propiedad Transaction del Objeto SqlCommand el valor del Objeto SqlTransaction
                command.Transaction = transaccion;
                //Asingo la conexion al objeto conection
                command.Connection = connection;
                command.CommandText = "spCargarReunion";
                command.CommandType = CommandType.StoredProcedure;

                // Declaro el Objeto de parametro
                System.Data.SqlClient.SqlParameter param;

                param = command.Parameters.AddWithValue("@Fecha", Fecha);
                param.DbType = DbType.DateTime;
                param.Direction = ParameterDirection.Input;

                param = command.Parameters.AddWithValue("@Observaciones", Observaciones);
                param.DbType = DbType.String;
                param.Direction = ParameterDirection.Input;

                param = command.Parameters.AddWithValue("@TipoReunionId", ReunionTipo.Id);
                param.DbType = DbType.Int32;
                param.Direction = ParameterDirection.Input;

                param = command.Parameters.AddWithValue("@ClienteId", Cliente.ClienteId);
                param.DbType = DbType.Int32;
                param.Direction = ParameterDirection.Input;

                param = command.Parameters.AddWithValue("@PresupuestoId", Presupuesto.Id);
                param.DbType = DbType.Int32;
                param.Direction = ParameterDirection.Input;

                param = command.Parameters.AddWithValue("@EventoId", Evento.Id);
                param.DbType = DbType.Int32;
                param.Direction = ParameterDirection.Input;

                param = command.Parameters.AddWithValue("@HoraReunion", Hora);
                param.DbType = DbType.String;
                param.Direction = ParameterDirection.Input;

                param = command.Parameters.AddWithValue("@TipoEmpleado", ReunionTipo.EmpleadoTipo.Id);
                param.DbType = DbType.Int32;
                param.Direction = ParameterDirection.Input;

                // Establesco el parametro @SocDirDepto
                param = command.Parameters.AddWithValue("@ReunionId", Id);
                param.DbType = DbType.Int32;
                param.Direction = ParameterDirection.Output;
                
                // Ejecuto el procedimiento
                command.ExecuteNonQuery();

                Id = Convert.ToInt32(command.Parameters["@ReunionId"].Value);

                cargarPlatosADegustar(transaccion, connection);

                //Si no se genero ningun error en la carga ejecuto el commit
                transaccion.Commit();
            }
            catch (SystemException e)
            {
                //si se produjo algun error lo capturo y ejecuto el Rollback de la transaccion
                transaccion.Rollback();
                //provoco una Exepcion para la capa superior
                System.Diagnostics.Trace.Write(e.Message);

                throw new SystemException(e.Message);
            }
            finally
            {
                //Si termino la carga correctamente cierro la conexion
                connection.Close();
            }
        }

        public void ActualizarReunionYPresupuesto(int idReunion, int idPresupuesto)
        {
            // Crear el Objeto de conexion, inicializa con la cadena de conexion
            string conexion = ConfigurationManager.ConnectionStrings["CadenaConexion"].ConnectionString;
            System.Data.SqlClient.SqlConnection connection = new SqlConnection(conexion);

            // Abro la conexion
            connection.Open();

            //Invoco al Objeto SqlTransaction para manejar la transaccion  
            //ejecuto la transaccion
            SqlTransaction transaccion = connection.BeginTransaction();

            try
            {
                // Creo el Objeto Command, le asigno la conexion y el Procediminto a utilizar
                System.Data.SqlClient.SqlCommand command = new System.Data.SqlClient.SqlCommand();
                //Asigno a la propiedad Transaction del Objeto SqlCommand el valor del Objeto SqlTransaction
                command.Transaction = transaccion;
                //Asingo la conexion al objeto conection
                command.Connection = connection;
                command.CommandText = "spUpdateReunionYPresupuesto";
                command.CommandType = CommandType.StoredProcedure;

                // Declaro el Objeto de parametro
                System.Data.SqlClient.SqlParameter param;

                param = command.Parameters.AddWithValue("@ReunionId", idReunion);
                param.DbType = DbType.Int32;
                param.Direction = ParameterDirection.Input;
                              
                param = command.Parameters.AddWithValue("@EstadoReunion", 3);
                param.DbType = DbType.Int32;
                param.Direction = ParameterDirection.Input;

                param = command.Parameters.AddWithValue("@PresupuestoId", idPresupuesto);
                param.DbType = DbType.Int32;
                param.Direction = ParameterDirection.Input;

                param = command.Parameters.AddWithValue("@EstadoPresupuesto", 4);
                param.DbType = DbType.Int32;
                param.Direction = ParameterDirection.Input;

                // Ejecuto el procedimiento
                command.ExecuteNonQuery();

                //Si no se genero ningun error en la carga ejecuto el commit
                transaccion.Commit();
            }
            catch (SystemException e)
            {
                //si se produjo algun error lo capturo y ejecuto el Rollback de la transaccion
                transaccion.Rollback();
                //provoco una Exepcion para la capa superior
                System.Diagnostics.Trace.Write(e.Message);

                throw new SystemException(e.Message);
            }
            finally
            {
                //Si termino la carga correctamente cierro la conexion
                connection.Close();
            }

        }

        /// <summary>
        /// agregado por maury
        /// </summary>
        private void buscarPlatosRelacionadosADegustacion()
        {
            string commandSQL = "SELECT Alimento.ali_Nombre AS AlimentoNombre, Alimento.ali_Descripcion AS AlimentoDescripcion, "
                                + " Reunion_Degustacion.resDeg_AlimentoId AS AlimentoId, Alimento.ali_Foto AS AlimentoFoto "
                                + " FROM Reunion_Degustacion INNER JOIN "
                                + " Alimento ON Reunion_Degustacion.resDeg_AlimentoId = Alimento.ali_Id "
                                + " WHERE     (Reunion_Degustacion.reunion_Id = " + Id + ")";

            // Creo el Objeto DataAdapter y le paso la cadena al constructor y la sentencia SQL
            string conexion = ConfigurationManager.ConnectionStrings["CadenaConexion"].ConnectionString;
            SqlDataAdapter dataAdapter = new SqlDataAdapter(commandSQL, new SqlConnection(conexion));

            //// Obtengo la tabla del DataSet
            //DataTable dataTable = new DataTable();


            //// Relleno el DataTable
            //dataAdapter.Fill(dataTable);

            // Creo el Objeto DataSet
            DataSet dataSet = new DataSet();

            // Relleno el Objeto DataSet
            dataAdapter.Fill(dataSet, "Reunion_Degustacion");

            // Obtengo la tabla del DataSet
            DataTable dataTable = dataSet.Tables["Reunion_Degustacion"];

            Alimento_Data item = null;
            PlatosADegustar = new List<Alimento_Data>();

            foreach (DataRow dr in dataTable.Rows)
            {
                item = new Alimento_Data();
                item.Id = int.Parse(dr["AlimentoId"].ToString());
                item.Nombre = dr["AlimentoNombre"].ToString();
                item.Descripcion = dr["AlimentoDescripcion"].ToString();
                item.Foto_Plato = dr["AlimentoFoto"].ToString();
                PlatosADegustar.Add(item);
            }
        }

        /// <summary>
        /// agregado por maury
        /// </summary>
        public void actualizarReunionDegustacion(int idMenu, int idEvento, int idMenuViejo)
        {
            // Crear el Objeto de conexion, inicializa con la cadena de conexion
            string conexion = ConfigurationManager.ConnectionStrings["CadenaConexion"].ConnectionString;
            System.Data.SqlClient.SqlConnection connection = new SqlConnection(conexion);

            // Abro la conexion
            connection.Open();

            //Invoco al Objeto SqlTransaction para manejar la transaccion  
            //ejecuto la transaccion
            SqlTransaction transaccion = connection.BeginTransaction();

            try
            {
                // Creo el Objeto Command, le asigno la conexion y el Procediminto a utilizar
                System.Data.SqlClient.SqlCommand command = new System.Data.SqlClient.SqlCommand();
                //Asigno a la propiedad Transaction del Objeto SqlCommand el valor del Objeto SqlTransaction
                command.Transaction = transaccion;
                //Asingo la conexion al objeto conection
                command.Connection = connection;
                command.CommandText = "spUpdateReunionDegustacion";
                command.CommandType = CommandType.StoredProcedure;

                // Declaro el Objeto de parametro
                System.Data.SqlClient.SqlParameter param;

                param = command.Parameters.AddWithValue("@ReunionId", id);
                param.DbType = DbType.Int32;
                param.Direction = ParameterDirection.Input;

                param = command.Parameters.AddWithValue("@Observaciones", Observaciones);
                param.DbType = DbType.String;
                param.Direction = ParameterDirection.Input;

                param = command.Parameters.AddWithValue("@IdMenu", idMenu);
                param.DbType = DbType.Int32;
                param.Direction = ParameterDirection.Input;

                param = command.Parameters.AddWithValue("@IdEvento", idEvento);
                param.DbType = DbType.Int32;
                param.Direction = ParameterDirection.Input;

                param = command.Parameters.AddWithValue("@IdMenuViejo", idMenuViejo);
                param.DbType = DbType.Int32;
                param.Direction = ParameterDirection.Input;


                // Ejecuto el procedimiento
                command.ExecuteNonQuery();

                //Si no se genero ningun error en la carga ejecuto el commit
                transaccion.Commit();
            }
            catch (SystemException e)
            {
                //si se produjo algun error lo capturo y ejecuto el Rollback de la transaccion
                transaccion.Rollback();
                //provoco una Exepcion para la capa superior
                System.Diagnostics.Trace.Write(e.Message);
                throw new SystemException(e.Message);
            }
            finally
            {
                //Si termino la carga correctamente cierro la conexion
                connection.Close();
            }
        }

        /// <summary>
        /// modificado por maury solo la ultima parte
        /// </summary>
        public void BuscarReunion()
        {


            string commandSQL = "SELECT   Reunion.reu_Id AS Nro, Reunion.reu_fecha AS Fecha, Cliente.cli_Apellido AS Apellido, Cliente.cli_Nombre AS Nombre, Reunion_Tipo.tReu_Nombre AS Motivo, " +
               "    Reunion_Estado.eReu_Nombre AS estado, Reunion.reu_Observaciones AS Observaciones,Reunion.reu_RespuestaEmpresa AS RespuestaEmpresa, Reunion.evento_Id AS EventoId, Horas_x_Empleado.hora_Id as Hora " +
                  " FROM      Reunion INNER JOIN " +
                "   Reunion_Estado ON Reunion.estado_Id = Reunion_Estado.eReu_Id INNER JOIN " +
                "   Reunion_Tipo ON Reunion.tipoReunion_Id = Reunion_Tipo.tReu_Id INNER JOIN " +
                "   Cliente ON Reunion.cliente_Id = Cliente.cli_Id INNER JOIN " +
                 "  Horas_x_Empleado ON Reunion.reu_Id = Horas_x_Empleado.reunion_Id " +
                " WHERE   (Reunion_Estado.eReu_Id = 2) AND (Reunion.reu_Id =  " + id + ")";



            //SELECT   Reunion_Tipo.tReu_Nombre, Reunion.reu_fecha, Reunion.reu_Observaciones, Cliente.cli_Nombre, Cliente.cli_Apellido "
            //     + " FROM      Reunion_Tipo INNER JOIN "
            //    + "  Reunion ON Reunion_Tipo.tReu_Id = Reunion.tipoReunion_Id INNER JOIN "
            //   + "   Cliente ON Reunion.cliente_Id = Cliente.cli_Id INNER JOIN "
            //   + "   Reunion_Estado ON Reunion.estado_Id = Reunion_Estado.eReu_Id "
            //   + "   WHERE  Reunion.reu_Id "+id;





            // Creo el Objeto DataAdapter y le paso la cadena al constructor y la sentencia SQL
            string conexion = ConfigurationManager.ConnectionStrings["CadenaConexion"].ConnectionString;
            SqlDataAdapter dataAdapter = new SqlDataAdapter(commandSQL, new SqlConnection(conexion));

            //// Obtengo la tabla del DataSet
            //DataTable dataTable = new DataTable();


            //// Relleno el DataTable
            //dataAdapter.Fill(dataTable);

            // Creo el Objeto DataSet
            DataSet dataSet = new DataSet();

            // Relleno el Objeto DataSet
            dataAdapter.Fill(dataSet, "ReunionId");

            // Obtengo la tabla del DataSet
            DataTable dataTable = dataSet.Tables["ReunionId"];

            Cliente = new Cliente_Data();
            Id = int.Parse(dataTable.Rows[0]["Nro"].ToString());
            Fecha = DateTime.Parse(dataTable.Rows[0]["Fecha"].ToString());
            Cliente.ApeCliente = dataTable.Rows[0]["Apellido"].ToString();
            Hora= dataTable.Rows[0]["Hora"].ToString();
            Cliente.NomCliente = dataTable.Rows[0]["Nombre"].ToString();
            ReunionTipo = new Reunion_Tipo_Data();
            ReunionTipo.Nombre = dataTable.Rows[0]["Motivo"].ToString();
            Observaciones = dataTable.Rows[0]["Observaciones"].ToString();
            RespuestaEmpresa = dataTable.Rows[0]["RespuestaEmpresa"].ToString();


            string eventoidgdgd = dataTable.Rows[0]["EventoId"].ToString();
            //MODIFICACION
            if (dataTable.Rows[0]["EventoId"].ToString() != "")
            {
                Evento = new Evento_Data();
                Evento.Id = int.Parse(dataTable.Rows[0]["EventoId"].ToString());
                if (ReunionTipo.Nombre == "Degustación")
                {
                    buscarPlatosRelacionadosADegustacion();
                }
            }
        }

        public DataTable traerReunionesPendientes()
        {

            string commandSQL = "SELECT        Reunion.reu_fecha AS Fecha, Reunion.reu_Id, Reunion_Tipo.tReu_Nombre AS Motivo, Cliente.cli_Nombre AS Cliente, Cliente.cli_Apellido as apellido "
+ "FROM            Reunion INNER JOIN "
                         + "Reunion_Tipo ON Reunion.tipoReunion_Id = Reunion_Tipo.tReu_Id INNER JOIN "
                         + "Cliente ON Reunion.cliente_Id = Cliente.cli_Id "
+ "WHERE        (Reunion.estado_Id = 1)";
                        

            // Creo el Objeto DataAdapter y le paso la cadena al constructor y la sentencia SQL
            string conexion = ConfigurationManager.ConnectionStrings["CadenaConexion"].ConnectionString;
            SqlDataAdapter dataAdapter = new SqlDataAdapter(commandSQL, new SqlConnection(conexion));

            //// Obtengo la tabla del DataSet
            //DataTable dataTable = new DataTable();


            //// Relleno el DataTable
            //dataAdapter.Fill(dataTable);

            // Creo el Objeto DataSet
            DataSet dataSet = new DataSet();

            // Relleno el Objeto DataSet
            dataAdapter.Fill(dataSet, "Reunion");

            // Obtengo la tabla del DataSet
            DataTable dataTable = dataSet.Tables["Reunion"];

            return dataTable;
        }

        public DataTable traerReunionesPendientesYConfirmadas()
        {

            string commandSQL = "SELECT        Reunion.reu_fecha AS Fecha, Reunion.reu_Id, Reunion_Tipo.tReu_Nombre AS Motivo, Cliente.cli_Nombre AS Cliente, Cliente.cli_Apellido as apellido "
+ "FROM            Reunion INNER JOIN "
                         + "Reunion_Tipo ON Reunion.tipoReunion_Id = Reunion_Tipo.tReu_Id INNER JOIN "
                         + "Cliente ON Reunion.cliente_Id = Cliente.cli_Id "
+ "WHERE        (Reunion.estado_Id = 1) OR (Reunion.estado_Id = 2)";


            // Creo el Objeto DataAdapter y le paso la cadena al constructor y la sentencia SQL
            string conexion = ConfigurationManager.ConnectionStrings["CadenaConexion"].ConnectionString;
            SqlDataAdapter dataAdapter = new SqlDataAdapter(commandSQL, new SqlConnection(conexion));

            //// Obtengo la tabla del DataSet
            //DataTable dataTable = new DataTable();


            //// Relleno el DataTable
            //dataAdapter.Fill(dataTable);

            // Creo el Objeto DataSet
            DataSet dataSet = new DataSet();

            // Relleno el Objeto DataSet
            dataAdapter.Fill(dataSet, "Reunion");

            // Obtengo la tabla del DataSet
            DataTable dataTable = dataSet.Tables["Reunion"];

            return dataTable;
        }
    }
}
